Actualmente implementé una tubería de CI/CD de prueba usando Jenkins, Docker y Kubernetes. Estoy usando Kubernetes Helm Chart para agregar mis recursos de Kubernetes y usar Dockerhub como repositorio de imágenes. Cuando verifico el resultado de la API que implementé, no se actualiza con cambios modificados.
Cuando verifiqué con la salida de la consola de Jenkins, mostró todo con éxito. Pero la imagen de Docker más reciente no se obtiene con la etiqueta "más reciente". Todavía estoy obteniendo la salida anterior.
En mi Helm Chart values.yaml, agregué lo siguiente:
imageCredentials: name: helmchartrepository registry: <my-registry-name> username: <my-username> password: <my-password> image: repository: <my-repository> tag: latest pullPolicy: AlwaysY mi deployment.yaml se refiere a estos valores como los siguientes:
NB: incluso si estoy usando la configuración para extraer la última imagen del repositorio usando "latest", aún no obtengo la imagen modificada. Y no hay error también. El único problema es extraer la última imagen de la ventana acoplable del repositorio de imágenes de Dockerhub.
¿Cómo puedo resolver este error?
Agregue la date: "{{ .Release.Time.Seconds }}" en su deployment en template/metadata/labels y configure imagePullPolicy: Always . Helm detectará los cambios en el objeto de implementación y extraerá la imagen más reciente cada vez:
template: metadata: labels: app.kubernetes.io/name: {{ .Values.app.frontendName }} app.kubernetes.io/instance: {{ .Release.Name }} date: "{{ .Release.Time.Seconds }}" Ejecute helm upgrade releaseName ./my-chart para actualizar su versión
Helm no puede entender si la imagen se ha actualizado o no. Dado que está utilizando la etiqueta fija más reciente. Puede agregar algunas etiquetas como fecha o marca de tiempo en los metadatos para identificar el cambio.